iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0
Rust

用 Tauri 打造你的應用程式系列 第 19

[Day 19] Plugin (四):Notification

  • 分享至 

  • xImage
  •  

在行動應用的世界中,通知是與使用者保持互動的重要橋樑。無論是提醒使用者完成待辦事項、通知新訊息到達,還是告知重要事件的發生,本地通知都扮演著關鍵的角色。Tauri 透過 tauri-plugin-notification 插件,為我們提供了跨平台的通知解決方案,讓同一套程式碼能夠在桌面和行動裝置上都能順暢運作。

通知系統的價值與應用場景

現代使用者習慣透過通知來接收重要資訊,這種即時的回饋機制不僅提升了使用者體驗,也增加了應用程式的黏著度。在 Android 平台上,本地通知可以在應用程式處於背景運行時持續與使用者互動,確保重要資訊不會被遺漏。

對於 Tauri 應用程式而言,通知系統的另一個優勢是其跨平台特性。同樣的 API 呼叫可以在 Windows 桌面上顯示系統通知,在 Android 上則顯示為標準的行動通知,讓開發者能夠用最少的程式碼實現最大的平台覆蓋。

如何安裝 tauri-plugin-notification

一如既往,只要簡單的一個指令就可以安裝了

npm run tauri add notification

前端實作與權限處理

在 Vue 前端中,我們需要先處理通知權限,然後才能發送通知:

import {
  isPermissionGranted,
  requestPermission,
  sendNotification,
} from '@tauri-apps/plugin-notification';
import { ref } from "vue";

const name = ref("")

// Do you have permission to send a notification?
let permissionGranted = await isPermissionGranted();

// If not we need to request it
if (!permissionGranted) {
  const permission = await requestPermission();
  permissionGranted = permission === 'granted';
}

// Once permission has been granted we can send the notification
if (permissionGranted) {
  sendNotification({ title: "鐵人賽", body: `Hi ${name.value}!要不要一起寫鐵人賽?` });
}

因為是在開發階段觸發的,所以顯示的是 Window Powershell。之後打包起來就會改成顯示應用程式的名稱了~ (打包的部分之後會再介紹)

當然,也可以是從 Rust 發出通知:

tauri::Builder::default()
    .plugin(tauri_plugin_notification::init())
    .setup(|app| {
        use tauri_plugin_notification::NotificationExt;
        app.notification()
            .builder()
            .title("Tauri")
            .body("Tauri is awesome")
            .show()
            .unwrap();

        Ok(())
    })
    .run(tauri::generate_context!())
    .expect("error while running tauri application");

Android 介面

Android 的話會長這樣:

同意之後就可以看到通知了:

通知的最佳實踐

在實作通知功能時,需要注意幾個重要原則。首先是尊重使用者的選擇,如果使用者拒絕了通知權限,應用程式仍應正常運作,只是不發送通知。其次是適度使用,過於頻繁的通知會讓使用者感到困擾,甚至可能導致應用程式被卸載。

通知內容應該簡潔明瞭,讓使用者能夠快速理解通知的意圖。標題應該概括主要資訊,內容則提供必要的細節。適當的圖示也能增強通知的視覺效果和辨識度。

跨平台考量

值得注意的是,不同平台的通知行為可能略有差異。在 Android 上,使用者可以透過系統設定來管理每個應用程式的通知權限,而在桌面平台上,通知的顯示方式和持續時間可能有所不同。

開發時應該在實際裝置上測試通知功能,確保在各種情境下都能正常運作。特別是要測試應用程式在背景運行時的通知行為,以及使用者與通知互動時的回應機制。

小結

透過 tauri-plugin-notification,我們成功為 Tauri 應用程式加入了強大的通知功能,不僅提升了使用者體驗,也讓應用程式能夠在競爭激烈的行動應用市場中脫穎而出。


上一篇
[Day 18] Plugin (三):Dialog
下一篇
[Day 20] Windows 打包 (一):基礎
系列文
用 Tauri 打造你的應用程式24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言